package es.juanc.dates;
/*
 * DateValidate.java
 *
 *  Valida que una fecha sea correcta.
 *  Por ejemplo 20020202 correcto
 *  20020230 incorrecto.
 *  Se puede configurar la mascara de la fecha
 */

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * @author Facu
 */
public class DateValidate {

	public static void main( String args[] ) {

		//String dt = "19990202"; // correcta
		//String dt = "19990229"; //Fecha incorrecta
		//String dt = "19990230"; //Fecha incorrecta
		//String dt = "30-12-2002"; //Fecha incorrecta
		//String fdt = "yyyyMMdd"; // mascara que utiliza
		
		String dt = "3  rgher/";	//incorrectas
		//String dt = "30/02/2007";	//incorrectas
		//String dt = "28/02/2007"; //correctas
		String fdt = "dd/MM/yyyy";

// Parseo de Fechas, a objeto Date
		try {
			SimpleDateFormat sdf = new SimpleDateFormat(fdt);
			sdf.setLenient(false);
			Date dt2 = sdf.parse(dt);
			System.out.println("Fecha ok = " + dt2 + "(" + dt + ")");
		} 
		catch (ParseException e) {
			System.out.println(e.getMessage());
		} 
		catch (IllegalArgumentException e) {
			System.out.println("Fecha incorrecta");
		}
		
// Formateo de Fechas, desde objeto Date		
		String format = "d 'de' MMMM 'de' yyyy";
		
		try {
			SimpleDateFormat sdf = new SimpleDateFormat(format, new Locale("es") );
			System.out.println( "Fecha = " + sdf.format( new Date() ) );
		}
		catch (IllegalArgumentException e) {
			System.out.println("Fecha incorrecta");
		}
	}
	
}
